//package com.qingcloud.df.executor.exception;
//
//import java.io.PrintWriter;
//import java.io.StringWriter;
//
///**
// * 基础异常类
// *
// * @author wangjinnan
// */
//public class CommException extends RuntimeException {
//
//    private final Integer code;
//
//    private final String message;
//
//    public CommException(String message) {
//        this(505, message);
//    }
//
//    public CommException(Integer code, String message) {
//        super(message);
//        this.code = code;
//        this.message = message;
//    }
//
//    private CommException(Integer errorCode, String errorMessage, Throwable cause) {
//        super(errorCode + " - " + getMessage(errorMessage) + " - " + getMessage(cause), cause);
//        message = errorMessage;
//        code = errorCode;
//    }
//
//    public static CommException asWMException(Integer errorCode, String message) {
//        return new CommException(errorCode, message);
//    }
//
//    public static CommException asWMException(Integer errorCode, String message, Throwable cause) {
//        if (cause instanceof CommException) {
//            return (CommException) cause;
//        }
//        return new CommException(errorCode, message, cause);
//    }
//
//    public static CommException asWMException(Integer errorCode, Throwable cause) {
//        if (cause instanceof CommException) {
//            return (CommException) cause;
//        }
//        return new CommException(errorCode, getMessage(cause), cause);
//    }
//
//
//    public Integer getCode() {
//        return code;
//    }
//
//    @Override
//    public String getMessage() {
//        return message;
//    }
//
//    private static String getMessage(Object obj) {
//        if (obj == null) {
//            return "";
//        }
//
//        if (obj instanceof Throwable) {
//            StringWriter str = new StringWriter();
//            PrintWriter pw = new PrintWriter(str);
//            ((Throwable) obj).printStackTrace(pw);
//            return str.toString();
//        } else {
//            return obj.toString();
//        }
//    }
//
//
//}
